# -*- coding: utf-8 -*-
"""
配置文件
"""

# Redis配置
REDIS_CONFIG = {
    'host': 'localhost',        # Redis服务器地址
    'port': 6379,               # Redis端口
    'db': 0,                    # 数据库编号
    'password': None,           # 密码（如果有）
    'timeout': 5,               # 连接超时时间
    'connect_timeout': 5,       # 连接超时时间
}

# 数据库配置
# 说明：系统实际使用的是 pymssql 驱动进行连接；下面的 ODBC 相关配置仅作兼容与备用使用。
DATABASE_CONFIG = {
    'server': 'fast9.shenzhuo.vip,56472',
    'database': 'GP',
    'username': 'sa',
    'password': 'shanks00',
    'driver': 'ODBC Driver 17 for SQL Server',
    # 多个驱动选项，系统会自动尝试
    'drivers': [
        'ODBC Driver 17 for SQL Server',
        'ODBC Driver 18 for SQL Server', 
        'ODBC Driver 13 for SQL Server',
        'SQL Server'
    ],
    'connection_string': 'DRIVER={ODBC Driver 17 for SQL Server};SERVER=fast9.shenzhuo.vip,56472;DATABASE=GP;UID=sa;PWD=shanks00'
}

# 东方财富API配置
# 提示：系统用该API仅用于获取实时/开盘/收盘价格，不参与选股打分（选股来自数据库表 `zbfx` 的 `Strength` 字段）。

# 东方财富按代码批量行情接口（用于精准按代码拉取，避免只取到Top100）
EASTMONEY_QUOTE = {
    'quote_url': 'http://push2.eastmoney.com/api/qt/ulist.np/get',
    # 说明：使用 secids= 市场代码.股票代码，市场代码：0=深市(0/3开头)，1=沪市(6开头)
    # 例如：secids=1.600519,0.000001
    'fields': 'f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f14,f15,f16,f17,f18'
}

# 交易时间配置
TRADE_TIME = {
    'buy_time': '09:30',      # 买入时间
    'sell_time': '15:00',     # 收盘统计时间
    'hold_days': 2           # 持仓天数
}

# 调度器配置（APScheduler）
# 说明：强烈建议显式设置为上海时区，避免UTC导致的触发时间偏移
SCHEDULER = {
    'timezone': 'Asia/Shanghai'
}

# 选股配置
# 说明：用于控制从表 `zbfx` 中选择当日候选股票的范围（按 Strength 降序）。
# - top_count: 取前 N 只股票作为当日候选（越大覆盖越多，但质量可能下降）
# - min_strength: 最小强度阈值（过滤掉低于该值的标的）
STOCK_SELECTION = {
    'top_count': 30,          # 按strength排序取最高的N只股票
    'bottom_count': 30,       # 按strength排序取最低的N只股票
    'min_strength': 0.5       # 最小strength阈值（可选）
}

# 日志配置
LOG_CONFIG = {
    'level': 'INFO',
    'format': '%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    'file': 'trade_analysis.log',
    'max_bytes': 10485760,    # 10MB
    'backup_count': 5
}
